package eteam.aps.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import eteam.aps.model.entity.Depot;
import eteam.aps.model.vo.DepotVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 仓库持久层
 *
 * @author WMT
 */
@Mapper
public interface DepotMapper extends BaseMapper<Depot> {
    /**
     * 逻辑删除仓库
     * @param depot 仓库
     * @return 受影响的行数
     */
    int deleteOne(Depot depot);

    /**
     * 根据fId物理删除仓库
     * @param fId fId
     * @return 受影响的行数
     */
    int deleteByFId(String fId);

    /**
     * 修改仓库信息
     * @param depot 仓库
     * @return 受影响的行数
     */
    int updateOne(Depot depot);

    /**
     * 查询所有不包含删除/作废的仓库
     * @param fState 状态
     * @return 仓库列表
     */
    List<DepotVo> selectByList(int fState);

    /**
     * 根据仓库编号统计仓库数量
     * @param deCode 仓库编号
     * @return 数量
     */
    int selectCountByDeCode(String deCode);

    /**
     * 根据仓库名称统计仓库数量
     * @param deName 仓库名称
     * @return 数量
     */
    int selectCountByDeName(String deName);

    /**
     * 根据fId查询仓库
     * @param fId fId
     * @return 仓库
     */
    Depot selectByFId(String fId);

    /**
     * 根据fId查询仓库状态
     * @param fId fId
     * @return 状态
     */
    int selectFState(String fId);

    /**
     * 分页查询所有仓库列表 -- 总条数
     * @param map 查询条件
     * @return 总条数
     */
    int selectAllCount(Map<String,Object> map);

    /**
     * 分页查询所有仓库列表 -- 总记录
     * @param map 查询条件
     * @return 总记录
     */
    List<DepotVo> selectAll(Map<String,Object> map);

    /**
     * 根据fId查询仓库详情
     * @param fId fId
     * @return 仓库详情
     */
    DepotVo selectDetails(String fId);
}
